package enregistrement;

import static org.junit.Assert.*;
import invoker.IHMImpl;

import org.junit.Test;

import command.Command;
import command.Copier;
import command.SaisirTexte;
import receiver.Buffer;
import receiver.Enregistreur;
import receiver.ME;
import receiver.MEImpl;
import receiver.PressePapier;
import receiver.Selection;
import receiver.Sujet;

public class EnregistreurTest {

	@Test
	public void testGetInstance() {
		Enregistreur enregistrement = Enregistreur.getInstance();
		assertEquals(enregistrement, Enregistreur.getInstance());
	}

	@Test
	public void testIsEnMarche() {;
		Enregistreur enregistrement = Enregistreur.getInstance();
		enregistrement.stoper();
		assertTrue(!enregistrement.isEnMarche());
	}

	@Test
	public void testSetEnMarche() {
		Enregistreur enregistrement = Enregistreur.getInstance();
		assertTrue(!enregistrement.isEnMarche());
		enregistrement.setEnMarche(true);
		assertTrue(enregistrement.isEnMarche());
		enregistrement.setEnMarche(false);
		assertTrue(!enregistrement.isEnMarche());
		
	}

	@Test
	public void testDemarrer() {
		Enregistreur enregistrement = Enregistreur.getInstance();
		assertTrue(!enregistrement.isEnMarche());
		enregistrement.demarrer();
		assertTrue(enregistrement.isEnMarche());
	}

	@Test
	public void testStoper() {
		Enregistreur enregistrement = Enregistreur.getInstance();
		enregistrement.stoper();
		assertTrue(!enregistrement.isEnMarche());
	}

	@Test
	public void testRejouer() {
		Enregistreur inst = Enregistreur.getInstance();
		inst.stoper();
		inst.rejouer();
	}

	@Test
	public void testEnregistrer() {
		Enregistreur inst = Enregistreur.getInstance();
		inst.demarrer();
		ME me = new MEImpl(new Buffer(), new PressePapier(), new Selection());
		inst.enregistrer(new Copier(me));
		
	}

}
